// 冒泡排序 时间复杂度：平均 O(n²) 最差 O(n²) 稳定 n小时较好
/**
 *
 * @param arr{Array}
 */
function bubbleSort (arr) {
    let temp = 0
    let flag = false // 冒泡排序优化 如果一趟排序中没有任何交换 说明已经有序了
    for (let i = 0; i < arr.length - 1; i++) {
        for (let j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                flag = true
                temp = arr[j]
                arr[j] = arr[j + 1]
                arr[j + 1] = temp
            }
        }
        if (!flag) {
            break
        } else {
            flag = false
        }
        console.log(`第${i + 1}趟排序结果：`)
        console.log(arr)
    }
    return arr
}

function main () {
    let arr1 = [3, 9, -1, 10, -2]
    bubbleSort(arr1)
}

main()
